package com.sky.repository;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sky.dto.OrdersPageQueryDTO;
import com.sky.dto.OrdersRejectionDTO;
import com.sky.dto.TimeoutDTO;
import com.sky.po.OrdersPO;
import com.sky.vo.OrderVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Mapper
public interface OrderRepository extends BaseMapper<OrdersPO> {

//    /**
//     * 查询历史订单
//     * @param source
//     * @return
//     */
//    Page<OrderVO> pageHistoryOrders(@Param("page")Page<OrderVO> page,@Param("source") OrdersPageQueryDTO source);

    /**
     * 获取支付超时的订单
     * @return
     */
    Boolean updateByStatus(@Param("source")TimeoutDTO source);

    /**
     * 查询订单
     * @param page
     * @param source
     * @return
     */
    Page<OrderVO> conditionSearch(@Param("page")Page<OrderVO> page,@Param("source") OrdersPageQueryDTO source);

    /**
     * 获取订单详情
     * @param id
     */
    OrderVO detail(@Param("id") Long id);

    /**
     *
     * @param beginTime
     * @param endTime
     * @return
     */
    List<HashMap<String, Object>> selectReport(@Param("begin") LocalDateTime beginTime, @Param("end") LocalDateTime endTime);

    /**
     * 查询营业额
     * @param begin
     * @param end
     * @return
     */
    Double sumByMap(LocalDateTime begin,LocalDateTime end);

    /**
     *
     * @param begin
     * @param status
     */
    Integer countByMap(@Param("begin") Object begin,@Param("status") Object status);
}
